/*
* $Id: SettingsWithUserColumn.h 2 2009-12-23 13:58:02Z volok-aleksej@yandex.ru $
*
* Copyright 2008-2009 by Volokitin Alexey
* All rights reserved
*
*/
#ifndef _SETTINGS_WITH_USER_COLUMN_H_
#define _SETTINGS_WITH_USER_COLUMN_H_

#include "../Setting.h"

class CSettingsWithUserColumn : public CSettings
{
protected:
	std::map<std::tstring, int> m_aTypeColumns;
protected:
	virtual std::map<std::tstring, std::tstring> GetStates();
	virtual std::map<std::tstring, std::vector<Parameter> > GetParameters();
	virtual std::vector<Window> GetWindows();
	virtual std::tstring GetSaveValue(const std::tstring& strValueName, const std::tstring& strValue, bool& bSave);
protected:
	virtual int GetTypeTable() = 0;
	virtual CRect GetSizeRegion() = 0;
public:
	CSettingsWithUserColumn(int nIdString, const std::tstring& strRegName, bool bHeader);
	virtual ~CSettingsWithUserColumn();

	virtual void SaveSetting();
	virtual bool IsChanged();
	virtual void SetState(const std::tstring& strId, const std::tstring& strState);
};

#endif /*_SETTINGS_WITH_USER_COLUMN_H_*/